﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.ComponentModel;

namespace LuckyLoot.Common
{
    public static class ComplexEnumeration
    {
        public static string GetDescription(this Enum value)
        {
            FieldInfo field = value.GetType().GetField(value.ToString());

            DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;
            
            return attribute == null ? value.ToString() : attribute.Description;
        }

        /*
        public static Dictionary<int, string> EnumAsDataSource(Type enumerator)
        {
            if (!enumerator.IsEnum)
                throw new InvalidOperationException("O tipo passado não é um enumerador e portanto não pode ser usado como DataSource");

            var dataSource = new Dictionary<int, string>();
            Array values = Enum.GetValues(enumerator);
            
            foreach(var val in values)
            {
                dataSource.Add((int)val, ((enumType)val).GetDescription());
            }

            return dataSource;
        }/*/
    }
}
